package com.allwees.data.dataport.apiaccess;

import com.allwees.core.common.util.BeanUtil;
import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 *
 * @author sky
 *
 */
@Slf4j
public class ApiAccessorUtil {
	private static Map<String, ApiAccessor> accessorsCache = new HashMap<>();

	private static boolean inited = false;

	public synchronized static void init() {
		if(inited) {
			return;
		}
		ApiAccessorRepository apiAccessorRepository = BeanUtil.getBean(ApiAccessorRepository.class);
		List<ApiAccessor> allAccessors = apiAccessorRepository.fetchAllApiAccessor();
		for(ApiAccessor apiAccessor : allAccessors) {
			accessorsCache.put(apiAccessor.getAccessId(), apiAccessor);
		}
		log.info("ApiAccessorUtil.init() finished.");
		inited = true;
	}

	public static void reset() {
		accessorsCache.clear();
		inited = false;
		ApiAccessorUtil.init();
	}

	public static ApiAccessor getApiAccessor(String accessId) {
		return accessorsCache.get(accessId);
	}
}
